Imaginez les données brutes comme un flux non étiqueté — une frontière sauvage de la mémoire. En Rust, nous commençons par traiter les données comme tranches contiguës (des tranches et des tableaux). Ce passage des données brutes aux schémas définis marque le passage de la mémoire anonyme à structures pertinentes.
1. Le niveau « brut »
Les tranches et les tableaux représentent les données sous leur forme la plus simple. La sécurité est assurée par vérifications d'ownership au moment de la compilation plutôt que par une surcharge à l'exécution. En utilisant le prêt (&), nous pouvons créer des « vues » sur les données sans déplacer les valeurs.
2. Limites sémantiques
Bien que les fonctions telles que first_word soient flexibles (acceptant String, &str, ou des littéraux), elles atteignent une limite sémantique. Le compilateur sait que la mémoire est sûre, mais il ne sait pas ce que les données représentent (par exemple, un nom d'utilisateur contre une lecture de capteur) jusqu'à ce que nous les cartographions vers un Struct.